package main

import (
	"runtime"
	"sync"
)

var (
	wg5      sync.WaitGroup
	counter5 int
	mutex    sync.Mutex
)

func main() {

}
func incCounter(id int) {
	// 在函数退出时调用 Done 来通知 main 函数工作已经完成
	defer wg.Done()

	for count := 0; count < 2; count++ {
		// 同一时刻只允许一个 goroutine 进入
		// 这个临界区
		mutex.Lock()
		{
			// 捕获 counter 的值
			value := counter5

			// 当前 goroutine 从线程退出，并放回到队列
			runtime.Gosched()

			// 增加本地 value 变量的值
			value++

			// 将该值保存回 counter
			counter5 = value
		}
		mutex.Unlock()
		// 释放锁，允许其他正在等待的 goroutine
		// 进入临界区
	}
}
